
// 泛型
// function fn<T>(a: T): T {
// 	return a
// }

// const f1 = fn<number>(1)
// const f2 = fn<string>('123')

// type paramsType = number | string

// function fnn(params: paramsType ): number {
// 	// 类型保护
// 	if (typeof params === 'number') {
// 		return params
// 	}
// 	return params.length
// }


interface IUser{
	username: string
	passwrod: string
}


interface IPerson {
	name: string,
	age: number
	// 联合类型
	sex: '男' | '女'
}
// 交叉类型
const s: IUser & IPerson = {
	username: '123',
	passwrod: '123',
	name: '123',
	age: 1,
	sex: '男'
}

// document.body.addEventListener('click', e => {
// 	// 类型断言
// 	(e.target as HTMLElement).classList.add('active')
// })


